#include "layer.h"

void FreeLayer(Layer layer) {
	if (layer.data_output) {
		OwlFree(layer.data_output);
	}
	if (layer.data_delta) {
		OwlFree(layer.data_delta);
	}

	if (layer.data_weights) {
		OwlFree(layer.data_weights);
	}
	if (layer.data_weight_updates) {
		OwlFree(layer.data_weight_updates);
	}
	if (layer.data_biases) {
		OwlFree(layer.data_biases);
	}
	if (layer.data_bias_updates) {
		OwlFree(layer.data_bias_updates);
	}

	if (layer.data_mean) {
		OwlFree(layer.data_mean);
	}
	if (layer.data_mean_delta) {
		OwlFree(layer.data_mean_delta);
	}
	if (layer.data_variance) {
		OwlFree(layer.data_variance);
	}
	if (layer.data_variance_delta) {
		OwlFree(layer.data_variance_delta);
	}
	if (layer.data_rolling_mean) {
		OwlFree(layer.data_rolling_mean);
	}
	if (layer.data_rolling_variance) {
		OwlFree(layer.data_rolling_variance);
	}
	if (layer.data_x) {
		OwlFree(layer.data_x);
	}
	if (layer.data_x_norm) {
		OwlFree(layer.data_x_norm);
	}
}
